package com.jcfk.eam.domain.dto.main;

import com.jcfk.eam.domain.dto.base.EamInspectionRouteLocationDTO;
import com.jcfk.system.domain.dto.BaseDTO;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.validator.constraints.Length;

import lombok.Data;

import java.util.Date;

/**
 * 巡检任务
 *
 * @author libinghai
 * @email 35738025@gqq.com
 * @date 2024-12-04
 */
@Data
public class EamInspectionTaskDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 数据版本号
     */
    private Long version;

    /**
     * 资产大类
     */
    private Integer assetKind;

    /**
     * 标准作业类型
     */
    @Length(max = 32, message = "标准作业类型长度不能超过32")
    private String sopTypeId;

    /**
     * 巡检计划主键
     */
    @Length(max = 32, message = "巡检计划主键长度不能超过32")
    private String inspectionPlanId;

    /**
     * 巡检路线主键
     */
    private String inspectionRouteId;

    /**
     * 巡检路线名称
     */
    private String inspectionRouteName;

    /**
     * 任务编号
     */
    @Length(max = 32, message = "任务编号长度不能超过32")
    private String taskNo;

    /**
     * 任务名称
     */
    @Length(max = 50, message = "任务名称长度不能超过50")
    private String taskName;

    /**
     * 任务状态
     */
    private Integer taskStatus;

    /**
     * 资产总数
     */
    private Integer inspectTotalNumber;

    /**
     * 未检验资产数
     */
    private Integer notInspectedNumber;

    /**
     * 异常检验资产数
     */
    private Integer exceptionNumber;

    /**
     * 应答时间
     */
    private Date responseTime;

    /**
     * 计划执行时间
     */
    private Date planExecuteTime;

    /**
     * 开始执行时间
     */
    private Date startExecuteTime;

    /**
     * 结束执行时间
     */
    private Date endExecuteTime;

    /**
     * 巡检班组
     */
    private String executeTeamName;

    /**
     * 执行人主键
     */
    @Length(max = 32, message = "执行人主键长度不能超过32")
    private String executePersonId;

    /**
     * 执行人
     */
    @Length(max = 50, message = "执行人长度不能超过50")
    private String executePersonName;

    /**
     * 组织机构主键
     */
    @Length(max = 32, message = "组织机构主键长度不能超过32")
    private String organizationId;

    /**
     * 创建人
     */
    @Length(max = 50, message = "创建人长度不能超过50")
    private String createdUserName;

    /**
     * 更新人
     */
    @Length(max = 50, message = "更新人长度不能超过50")
    private String lastUpdatedUserName;

    /**
     * 批量删除id
     */
    private List<String> ids;

    /**
     * 检验位置
     */
    private List<EamInspectionRouteLocationDTO> routeLocationList;

    private List<EamTaskPlanAttachDTO> assetPhotos = new ArrayList<>();
}
